using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("ActorStateMgr")]
	public class ActorStateMgr : MonoBehaviour
	{
		public GameObject m_ObjectContainer => method_3<GameObject>("m_ObjectContainer");

		public ActorStateType m_activeStateType => method_2<ActorStateType>("m_activeStateType");

		public bool m_shown => method_2<bool>("m_shown");

		public HighlightState m_HighlightState => method_3<HighlightState>("m_HighlightState");

		public ActorStateMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ActorStateMgr(IntPtr address)
			: this(address, "ActorStateMgr")
		{
		}

		public void Start()
		{
			method_8("Start");
		}

		public ActorStateType GetActiveStateType()
		{
			return method_11<ActorStateType>("GetActiveStateType", Array.Empty<object>());
		}

		public List<ActorState> GetActiveStateList()
		{
			return method_14<Class271<ActorState>>("GetActiveStateList", Array.Empty<object>())?.method_25();
		}

		public float GetMaximumAnimationTimeOfActiveStates()
		{
			return method_11<float>("GetMaximumAnimationTimeOfActiveStates", Array.Empty<object>());
		}

		public bool ChangeState(ActorStateType stateType)
		{
			return method_11<bool>("ChangeState", new object[1] { stateType });
		}

		public bool ChangeState_NewState(ActorStateType stateType)
		{
			return method_11<bool>("ChangeState_NewState", new object[1] { stateType });
		}

		public bool ChangeState_LegacyState(ActorStateType stateType)
		{
			return method_11<bool>("ChangeState_LegacyState", new object[1] { stateType });
		}

		public void ShowStateMgr()
		{
			method_8("ShowStateMgr");
		}

		public void HideStateMgr()
		{
			method_8("HideStateMgr");
		}

		public void RefreshStateMgr()
		{
			method_8("RefreshStateMgr");
		}

		public HighlightState FindHightlightObject()
		{
			return method_14<HighlightState>("FindHightlightObject", Array.Empty<object>());
		}

		public void BuildStateMap()
		{
			method_8("BuildStateMap");
		}

		public void ShowImpl()
		{
			method_8("ShowImpl");
		}

		public void HideImpl()
		{
			method_8("HideImpl");
		}
	}
}
